package com.xydtech.ecard.config.service.impl;

import com.xydtech.common.annotation.DataScope;
import com.xydtech.common.core.domain.entity.SysDept;
import com.xydtech.common.core.text.Convert;
import com.xydtech.common.utils.ShiroUtils;
import com.xydtech.ecard.config.domain.EcardModuleInfo;
import com.xydtech.ecard.config.mapper.EcardModuleInfoMapper;
import com.xydtech.ecard.config.service.IEcardModuleInfoService;
import com.xydtech.system.service.ISysDeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 电子名片模块功能开关配置Service业务层处理
 *
 * @author xydtech
 * @date 2024-10-18
 */
@Service
public class EcardModuleInfoServiceImpl implements IEcardModuleInfoService
{
    @Autowired
    private EcardModuleInfoMapper ecardModuleInfoMapper;
    @Autowired
    private ISysDeptService sysDeptService;

    /**
     * 查询电子名片模块功能开关配置
     *
     * @param id 电子名片模块功能开关配置主键
     * @return 电子名片模块功能开关配置
     */
    @Override
    public EcardModuleInfo selectEcardModuleInfoById(Long id)
    {
        SysDept sysDept = sysDeptService.selectSecondLevelDeptByDeptId(ShiroUtils.getSysUser().getDeptId());
        return ecardModuleInfoMapper.selectEcardModuleInfoById(id, sysDept.getDeptId());
    }

    /**
     * 查询电子名片模块功能开关配置列表
     *
     * @param ecardModuleInfo 电子名片模块功能开关配置
     * @return 电子名片模块功能开关配置
     */
    @Override
    @DataScope(deptAlias = "d", userAlias = "u")
    public List<EcardModuleInfo> selectEcardModuleInfoList(EcardModuleInfo ecardModuleInfo)
    {
        return ecardModuleInfoMapper.selectEcardModuleInfoList(ecardModuleInfo);
    }

    /**
     * 新增电子名片模块功能开关配置
     *
     * @param ecardModuleInfo 电子名片模块功能开关配置
     * @return 结果
     */
    @Override
    public int insertEcardModuleInfo(EcardModuleInfo ecardModuleInfo)
    {
        return ecardModuleInfoMapper.insertEcardModuleInfo(ecardModuleInfo);
    }

    /**
     * 修改电子名片模块功能开关配置
     *
     * @param ecardModuleInfo 电子名片模块功能开关配置
     * @return 结果
     */
    @Override
    public int updateEcardModuleInfo(EcardModuleInfo ecardModuleInfo)
    {
        return ecardModuleInfoMapper.updateEcardModuleInfo(ecardModuleInfo);
    }

    /**
     * 批量删除电子名片模块功能开关配置
     *
     * @param ids 需要删除的电子名片模块功能开关配置主键
     * @return 结果
     */
    @Override
    public int deleteEcardModuleInfoByIds(String ids)
    {
        return ecardModuleInfoMapper.deleteEcardModuleInfoByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除电子名片模块功能开关配置信息
     *
     * @param id 电子名片模块功能开关配置主键
     * @return 结果
     */
    @Override
    public int deleteEcardModuleInfoById(Long id)
    {
        return ecardModuleInfoMapper.deleteEcardModuleInfoById(id);
    }
}
